package org.fixies.spreadsheet.interpreter;

import java.util.regex.Pattern;

/**
 * シートを表すコンテクスト
 *
 * @author Kawasaki
 */
public interface SheetContext {

    /**
     * コメントを表す正規表現
     */
    static final String COMMENT_CELL_REG_EXPRESSION = "^//.*";

    static final Pattern COMMENT_CELL_PATTERN = Pattern.compile(COMMENT_CELL_REG_EXPRESSION);

    /**
     * 次の要素を取り出す。
     *
     * @return
     */
    String[] next();

    /**
     * 現在の要素を返却する。
     *
     * @return
     */
    String[] current();

    /**
     * 次の要素が存在するか判定する。
     *
     * @return 判定結果
     */
    boolean hasNext();

    /**
     * シート名を返却する。
     *
     * @return シート名
     */
    String getSheetName();

    String[] currentSkippingEmptyRow();

    String[] nextSkippingEmptyRow();
}